import axios from "axios"
import { Message,Loading } from 'element-ui';
import router from "./router/index.js"

let loading;
function startLoading(){
    loading=Loading.service({
        lock:true,
        text:"拼命加载中……",
        background:"rgba(0,0,0,0.7)"
    })
}

function endLoading(){
    loading.close()
}


// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    startLoading();
    //判断token是否存在
    if(localStorage.getItem("eletoken")){
        //如果存在的话 设置请求头
        config.headers.Authorization = localStorage.getItem("eletoken");
        
    }
    return config;
  },(error)=> {
    // 对请求错误做些什么
    endLoading();
    return Promise.reject(error);
  });

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    endLoading();
    return response; 
  }, (error)=> {
    endLoading();
    //获取当前请求状态码   
    const {status} = error.response;
    if(status==401){
        //弹出消息框
        Message.error("token过期请重新登录");
        //清空localStorage  
        localStorage.removeItem("eletoken");
        //回到登录页面
        router.push({path:"/login"});
    }
    // Message.error(error.response.data);
    return Promise.reject(error);
  });

//使用es 6
export default  axios;